import java.sql.*;
import java.io.*;

public
class DatabaseTest
{
	public static DatabaseTest databaseTest;
	protected Connection connection = null;
	public static PrintWriter outp = null;
	
	public DatabaseTest(String file)
	{
		try{
			connect("test");
			writeRecords(file);
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
		}
		catch(IOException e){
			outp.println("Bd IO: " + e);
		}
		finally{
			close();
		}
	}
	public static void setOutput()
	{
		try{
		outp = new PrintWriter(new OutputStreamWriter(System.out, "Cp852"), true);
		}
		catch(UnsupportedEncodingException e){
			System.out.println("Nie mona ustawi strony kodowej Cp852.");
			outp = new PrintWriter(new OutputStreamWriter(System.out), true);
		}
	}
	public static void main(String args[])
	{
		setOutput();
		if (args.length < 1){
			outp.println("Wywoanie programu: 'DatabaseTest nazwa_pliku'");
			System.exit(0);
		}
		databaseTest = new DatabaseTest(args[0]);
	}
	public void connect(String databaseName)
	throws SQLException
	{
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch(ClassNotFoundException e){
			outp.println("Bd przy adowaniu sterownika bazy: " + e);
			System.exit(-1);
		}
		connection = DriverManager.getConnection("jdbc:odbc:" + databaseName);
		outp.println("\nPoczenie nawizane!\n");
	}
	public void close()
	{
		try{
			connection.close();
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
			System.exit(-1);
		}
		outp.println("\nPoczenie zamknite!\n");
	}
	public void writeRecords(String fileName)
	throws SQLException, IOException
	{
		TableOsoba osoba = new TableOsoba();

		BufferedReader inp = openFileStream(fileName);
		if (inp == null){
			throw new IOException("Nie mog otworzy pliku: " + fileName);
		}
		while(osoba.readFromStream(inp)){
			osoba.insert(connection);
			outp.println("Dodano wiersz: " + osoba);
		}
	}
	public BufferedReader openFileStream(String fileName)
	{
		FileInputStream fin = null;
		File file = new File(fileName);
		try{
			fin = new FileInputStream(file);
		}
		catch(FileNotFoundException e){
			return null;
		}
		DataInputStream out = new DataInputStream(fin);
		BufferedReader inbr = new BufferedReader(new InputStreamReader(fin));
		return inbr;
	}
}
